#include "log.hpp"
#include "app.hpp"
#include "ioc.hpp"
#include "input.hpp"

int main()
{
    // 日志测试
    LOG_T("Hello World, %d", 42);
    LOG_D("Hello World, %d", 42);
    LOG_I("Hello World, %d", 42);
    LOG_W("Hello World, %d", 42);
    LOG_E("Hello World, %d", 42);
    LOG_C("Hello World, %d", 42);

    // 初始化容器
    IoC::Container container;

    container.RegisterSingleton<App>();
    container.RegisterSingleton<Input>();
    auto app = container.Resolve<App>();
    app->RegisterSystemComponent(container.Resolve<Input>());
    app->Run();

    return 0;
}
